﻿using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Media;
using Syngine.Components;

namespace Syngine.Audio
{
	public interface IAudioManager : IPlayable
	{
		bool Muted { get; set; }

		bool Repeat { get; set; }

		float Volume { get; set; }

		void Play(Song song);

		void PlaySong(string asset);

		void Play(SoundEffect sound);

		void Play(SoundEffect sound, float volume);

		void Play(SoundEffect sound, float volume, float pitch);

		void Play(SoundEffect sound, float volume, float pitch, float pan);

		void PlaySound(string asset);

		void PlaySound(string asset, float volume);

		void PlaySound(string asset, float volume, float pitch);

		void PlaySound(string asset, float volume, float pitch, float pan);

		void Pause(Song song);
	}
}
